package cn.edu.lcu.cs.javaweb.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 登录Servlet，接收用户提交的用户名及密码，进行登录验证
 * @author Ling
 *
 */
//@WebServlet("/login")
public class LoginServletBackup extends HttpServlet {

	public LoginServletBackup() {
		super();
	}

	/**
	 * <p>在浏览器地址栏直接输入地址，就是Http get方式访问，本方法就会被调用</p>
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 本方法不需做什么复杂操作，只需转发给登录页面
		// 转发的时候，浏览器地址栏还是/login，用户感受不到真实的页面到底是哪个 
		// 应该避免在地址栏直接访问html或jsp的地址，而是访问servlet地址，由servlet转发给页面
		request.getRequestDispatcher("login.html").forward(request, response);
	}

	/**
	 * <p>页面表单提交数据，一般用Post方式，比较安全</p>
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter writer = response.getWriter();
		
		// 获取用户提交的用户名及密码
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		// 对用户提交的用户名及密码进行验证
		// 暂时用硬编码的方式进行验证，后期从数据库里读取数据进行验证
		if ("admin".equals(username) && "123".equals(password)) {
			// 验证通过，登录成功，转到首页
			// 请求转发？还是重定向？
			System.out.println("登录成功");
			response.sendRedirect("index.jsp"); 
//			writer.append("登录成功，2秒钟后转到首页");
//			response.setHeader("refresh", "2;url=" + getServletContext().getContextPath() + "/index.jsp");
		} else {
			// 验证失败，转到登录页面继续登录
			// 请求转发？还是重定向？
			System.out.println("登录失败");
			request.getRequestDispatcher("login.html").forward(request, response);
		}
		
	}

}
